// 埋点对象
var zwlog;

export function initZwlog(userId = '', userName = '') {
	// 用户信息埋点
	console.log(userId);
	console.log(userName);

	zwlog = new ZwLog({
		// 应用需要登录的，需要在初始化对象时加入用户id和用户名
		// 应用无需登录的，则可以不写参数
		_user_id: userId,
		_user_nick: userName,
	});
}

/*
 * *******PV 日志参数- global_args
 * url 页面路径 【选填】（未传参默认获取当前路由地址）
 * enterPageTime 【必填】（默认在路由改变的时候自动获取时间） 进入页面的时间 new Date()
 * leavePageTime 【必填】（默认在路由改变的时候自动获取时间） 离开页面的时间 new Date()
 * loadTime【必填】（页面onShow中获取当前时间） 加载完的时间 new Date()
 * responseTime 【必填】（页面onShow的nextTick中获取当前时间） 响应完的时间 new Date()
 */

var pageLogMap = {}; //埋点参数集合
export function zwlogPvGlobal({
	url = null, //页面地址
	pagename = null, //页面名称
	enterPageTime = null, //页面进入时间
	leavePageTime = null, //页面离开时间
} = {}) {
	// console.log(url);
	// console.log(pagename);
	// console.log(enterPageTime);
	// console.log(leavePageTime);

	if (!zwlog) initZwlog();
	let path = url || '';
	if (!pageLogMap.path)
		//hasOwnProperty(path)
		pageLogMap[path] = {
			enterPageTime: null,
			leavePageTime: null,
		};
	if (enterPageTime) pageLogMap[path].enterPageTime = enterPageTime;
	if (leavePageTime) pageLogMap[path].leavePageTime = leavePageTime;
	if (pageLogMap[path].enterPageTime && pageLogMap[path].leavePageTime) {
		/*
		 * miniAppId 应用开发管理平台 appId
		 * miniAppName 应用开发管理平台 应用名称
		 * log_status 用户登录状态 （01:未登录/ 02:单点登录）
		 * Page_duration 浏览时长  用户从进入到离开当前页面的时长
		 * pageId  应用页面ID
		 * pageName  应用页面名称
		 */
		let Page_duration =
			pageLogMap[path].leavePageTime.getTime() - pageLogMap[path].enterPageTime.getTime();
		let pvParams = {
			miniAppId: '2002319540',
			miniAppName: '博悦游',
			log_status: '02',
			Page_duration: Page_duration / 1000 + '秒',
			pageId: path,
			pageName: pagename,
		};
		zwlog.onReady(function () {
			// console.log('zwlog准备');
			zwlog.sendPV(pvParams); //发送埋点信息
			// console.log('zwlog已发送', pvParams);
			delete pageLogMap[path]; //清空埋点集合 避免重复
		});
	} else {
		let result = '';
		for (let k in pageLogMap[path]) {
			if (!pageLogMap[path][k]) result += k + '，';
		}
		// console.warn('埋点缺少参数=>>', result);
	}
}
// 获取页面的导航title
function getNavigationBarTitleText() {
	let pages = getCurrentPages();
	let page = pages[pages.length - 1];
	let title = page.$holder.navigationBarTitleText;
	console.log('zheliban === getNavigationBarTitleText title=', title);
	return title;
}

// 点击事件的埋点
export function zwlogRecord({ code = '' } = {}) {
	if (!zwlog) initZwlog();
	let path = getCurRoute();
	zwlog.onReady(function () {
		zwlog.record({
			trackerEventCode: `${code}`,
			eventType: 'OTHER',
			eventParams: {
				pageId: path, //采用页面路径，也可以自己给每个页面设置一个pageId
				pageName: getNavigationBarTitleText(),
			},
		});
	});
}

let getCurRoute = () => {
	let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
	let curRoute = routes[routes.length - 1].route; // 获取当前页面路由，也就是最后一个打开的页面路由
	console.log('curRoute', curRoute);

	return curRoute;
};
// Vue.prototype.$zwlogPvGlobal = zwlogPvGlobal;
